Fibre Channel Arbitrated Loop (FC-AL) architecture is a member of the Fibre Channel family of ANSI standard protocols. FC-AL is typically used for connecting together computer peripherals, in particular disk drives. The FC-AL architecture is described in NCITS working draft proposals, American National Standard for Information Technology “Fibre Channel Arbitrated Loop (FC-AL-2) Revision 7.0”, 1 Apr. 1999 and “Fibre Channel Arbitrated Loop (FC-AL-3) Version 1.0”, Sep. 20, 1999.
Electronic data systems can be interconnected using network communication systems. Area-wide networks and channels are two technologies that have been developed for computer network architectures. Area-wide networks (e.g. LANs and WANs) offer flexibility and relatively large distance capabilities. Channels, such as the Small Computer System Interface (SCSI), have been developed for high performance and reliability. Channels typically use dedicated short-distance connections between computers or between computers and peripherals.
Fibre Channel technology has been developed from optical point-to-point communication of two systems or a system and a subsystem. It has evolved to include electronic (non-optical) implementations and has the ability to connect many devices, including disk drives, in a relatively low-cost manner. This addition to the Fibre Channel specifications is called Fibre Channel Arbitrated Loop (FC-AL).
Fibre Channel technology consists of an integrated set of standards that defines new protocols for flexible information transfer using several interconnection topologies. Fibre Channel technology can be used to connect large amounts of disk storage to a server or cluster of servers. Compared to Small Computer Systems Interface (SCSI), Fibre Channel technology supports greater performance, scalability, availability, and distance for attaching storage systems to network servers.
Fibre Channel Arbitrated Loop (FC-AL) is a loop architecture as opposed to a bus architecture like SCSI. FC-AL is a serial interface, where data and control signals pass along a single path rather than moving in parallel across multiple conductors as is the case with SCSI. Serial interfaces have many advantages including: increased reliability due to point-to-point use in communications; dual-porting capability, so data can be transferred over two independent data paths, enhancing speed and reliability; and simplified cabling and increased connectivity which are important in multi-drive environments. As a direct disk attachment interface, FC-AL has greatly enhanced I/O performance.
Devices are connected to a FC-AL using hardware which is termed a “port”. A device which has connections for two loops has two ports or is “dual-ported”.
The operation of FC-AL involves a number of ports connected such that each port's transmitter is connected to the next port's receiver, and so on, forming a loop. Each port's receiver has an elasticity buffer that captures the incoming FC-AL frame or words and is then used to regenerate the FC-AL word as it is re-transmitted. This buffer exists to deal with slight clocking variations that occur. Each port receives a word, and then transmits that word to the next port, unless the port itself is the destination of that word, in which case it is consumed. The nature of FC-AL is therefore such that each intermediate port between the originating port and the destination port gets to ‘see’ each word as it passes around the FC-AL loop.
FC-AL architecture may be in the form of a single loop. Often two independent loops are used to connect the same devices in the form of dual loops. The aim of these loops is to provide an alternative path to devices on a loop should one loop fail. A single fault should not cause both loops to fail simultaneously. More than two loops can also be used.
FC-AL devices typically have two sets of connections allowing them to be attached to two FC-ALs. Thus, in a typical configuration, two independent loops exist and each device is physically connected to both loops. When the system is working optimally, there are two possible loops that can be used to access any dual-ported device.
A FC-AL can incorporate bypass circuits with the aim of making the FC-AL interface sufficiently robust to permit devices to be removed from the loop without interrupting throughput and sacrificing data integrity. If a disk drive fails, port bypass circuits attempt to route around the problem so all disk drives on the loop remain accessible. Without port bypass circuits a fault in any device will break the loop.
In dual loops, port bypass circuits are provided for each loop and these provide additional protection against faults. A port can be bypassed on one loop while remaining active on the dual loop.
A typical FC-AL may have one or two host bus adapters (HBA) and a set of approximately six disk drive enclosures or drawers, each of which may contain a set of ten to sixteen disk drives. There is a physical cable connection between each enclosure and the HBA in the FC-AL. Also, there is a connection internal to the enclosure or drawer, between the cable connector and each disk drive in the enclosure or drawer, as well as other components within the enclosure or drawer, e.g. SES device (SCSI Enclosure Services node) or other enclosure services devices.
Components in a loop can be categorised as “initiators” or “targets”, or both depending on their function in the loop. For example, a host bus adapter is an initiator and a disk drive is a target. Initiators can arbitrate for a communication path in the loop and can choose a target. A target can request the transfer of a command, data, status, or other information to or from the initiator.
In loop networks such as FC-ALs, there are many error scenarios where the location of a device in the loop needs to be determined. This can be quite difficult in FC-AL as an address of a device may have no physical association. The final address that a device may have (its AL_PA_Arbitrated Loop Physical Address) could be a soft address which is not related to any enclosure that the device may be in. To enable correct services of the FC-AL, it must be possible to locate a specific device.
Enclosures that house devices often have bypasses and drive detect capabilities such that they can know which devices are part of the FC-AL. However, the enclosures do not know whether these devices have been successful in getting an AL_PA or if they are non-participating devices. Non-participating devices are ports which are enabled in the loop but which do not have an AL_PA.
There is a known mechanism called ADISC that asks the device what its preferred hard address would be and this could be used to identify the enclosure that the device is in. However, this relies on the enclosure having a unique base address and also relies on the topology of the other enclosures not getting in the way. It is possible for a different enclosure with a different topology and the same base address to confuse the resolution of a device location.
Each port in a loop network has a port identifier called a “World Wide Port Name” (WWPN). Each node on a loop in the form of devices or host bus adapters also has a World Wide Node Name (WWNN). These are referred to as Node Names and Port Names. To ensure that the WWPN and WWNN are unique they may contain, for example, a unique identifier of the manufacturer of the device including the port and the manufacturer's serial number of the device. The WWPN is too long (usually 64 bits) to be used for source and destination addresses transmitted over the network and therefore the AL_PA (Arbitrated Loop Physical Address) is used as a temporary address that is unique to the configuration of the network at any given time.
Ideally the device's World Wide Node Name (WWNN) and World Wide Port Name (WWPN) would be known and each enclosure's controlling node should know the WWNN and WWPN of all devices in its enclosure.
This invention uses the enclosure's ability to detect which device slots are populated and the ability to bypass individual NL_Ports from the FC-AL itself. The standard FC-AL Loop Initialisation Procedure is used to detect each device's WWPN (Port Name) as supplied in the LISM frame or to detect that that NL_Port is in the non-participating mode. This now allows service aids to identify the enclosure and the device's WWPN that is associated with any service action.